﻿#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdio.h>
//memset使用（用来设置内存，以自字节为单位）
//int main()
//{
//	char arr[] = "hello world!";
//	memset(arr, '*', 5);
//	printf("%s\n", arr);
//	return 0;
//}


//memcpy使用(⽐较从ptr1和ptr2指针指向的位置开始，向后的num个字节)
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int arr2[] = { 1,2,3,4,6,7,8 };
//	int ret=memcpy(arr2, arr1, 17);
//	printf("%d\n", ret);
//	return 0;
//}


//判断大小端
int main()
{
	int a = 1;
	//1取出a的地址
	//2.强制类型转换成char*后解引用，只取a的第一个字节的数据
	//3.如果取出的是1，就是小端，取出的是0就是大端
	char ret = *(char*)&a;
	if (ret == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	return 0;
}

//int main()
//{
//	unsigned char a = 200;
//	unsigned char b = 100;
//	unsigned char c = 0;
//	c = a + b;
//	printf("%d %d", a + b, c);
//	return 0;
//}
//int check_sys()
//{
//	int a = 1;
//	if (*(char*)&a == 1)
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int main()
//{
//	int ret = check_sys();
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}

//int main()
//{
//    char a[1000] = { 0 };
//    int i = 0;
//    for (i = 0; i < 1000; i++)
//    {
//        a[i] = -1 - i;
//    }
//    printf("%d", strlen(a));
//    return 0;
//}
#include<string.h>
//strncpy模拟实现
int main()
{
	char arr1[20] = { 0 };
	char arr2[] = "abcde";
	strncpy(arr1, arr2, 5 * sizeof(int));
	for (int i = 0; i < 5; i++)
	{
		printf("%s ", arr1[i]);
	}
	return 0;
}